// packageA/pages/Merchant/Merchant.ts
import request from '../../../utils/request';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    searchValue: '',
    merchants: [],  
    allMerchants: [],
    loading: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    this.fetchMerchants();
  },
  async fetchMerchants() {
    if (this.data.loading) return;
    this.setData({ loading: true });
    try {
      const res: any = await request.getMerchantList();
      // 后端返回结构固定为 { msg, data: [...] }
      const list = Array.isArray(res?.data) ? res.data : [];
      this.setData({
        allMerchants: list,
        merchants: list,
      });
    } catch (error) {
      wx.showToast({ title: '加载失败', icon: 'none' });
    } finally {
      this.setData({ loading: false });
      wx.stopPullDownRefresh?.();
    }
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  /**
   * 搜索输入事件
   */
  onSearchInput(e: any) {
    this.setData({ searchValue: e.detail.value });
    this.filterMerchants();
  },

  /**
   * 搜索确认事件
   */
  onSearchConfirm(e: any) {
    this.setData({ searchValue: e.detail.value });
    this.filterMerchants();
  },

  filterMerchants() {
    const kw = (this.data.searchValue || '').trim();
    if (!kw) {
      this.setData({ merchants: this.data.allMerchants });
      return;
    }
    const lower = kw.toLowerCase();
    const filtered = (this.data.allMerchants || []).filter((m: any) => {
      const name = (m.name || '').toLowerCase();
      const type = (m.type || '').toLowerCase();
      const desc = (m.description || '').toLowerCase();
      const addr = (m.address || '').toLowerCase();
      const phone = (m.phone || '').toLowerCase();
      return (
        name.indexOf(lower) > -1 ||
        type.indexOf(lower) > -1 ||
        desc.indexOf(lower) > -1 ||
        addr.indexOf(lower) > -1 ||
        phone.indexOf(lower) > -1
      );
    });
    this.setData({ merchants: filtered });
  },

  /**
   * 跳转到商户详情页面
   */
  goToMerchantIM(e: any) {
    const merchantId = e.currentTarget.dataset.merchantId;
    wx.navigateTo({
      url: `../MerchantIM/MerchantIM?merchantId=${merchantId}`
    })
  },

  /**
   * 切换地图模式
   */
  toggleMapMode() {
    wx.showToast({
      title: '切换到地图模式',
      icon: 'success',
      duration: 1500
    });
    // 这里可以添加跳转到地图页面的逻辑
  }
})